Ao proporcionar comparações visuais claras e imediatas entre o Brasil e o mundo no que se refere à vacinação e às vítimas do COVID-19, essa página se destaca de outros painéis mais completos e prestigiosos, como Our World in Data e Vacinômetro.
Vacinação, casos e mortes são apresentados como proporções por 100 habitantes e as escalas de cores são as mesmas para o mapa do Brasil e do mundo.
Uma inspeção rápida permite verificar, por exemplo, que a proporção de vacinados no Brasil se equipara aos seus vizinhos da América do Sul mas está bem atrás da América do Norte e Europa. Ou que a taxa de mortes no Amazonas é maior que a de qualquer país tomado como um todo.
Importante: os dados são consolidados diariamente, mas pode haver diferenças nas datas de atualização entre os países; verifique a última atualização disponível passando o mouse sobre o país em questão.
Origem dos dados:
Brasil: https://github.com/wcota/covid19br
Mundo: https://github.com/owid/covid-19-data
Dataviz por Guto Barros
Disponibilizado sob Atribuição 4.0 Internacional (CC BY 4.0)
3.820.207
9.599.565
233.520
09/02/2021
---
title: "Vacinação COVID-19 no Brasil e no mundo "
output:
flexdashboard::flex_dashboard:
vertical_layout: scroll
social: menu
source_code: embed
---
```{r setup, include=FALSE, warning=FALSE}
library(flexdashboard)
library(leaflet)
library(tidyverse)
library(maps)
library(lubridate)
library(jsonlite)
library(rgdal)
```
```{r, echo=FALSE, message=FALSE}
brasil <- readOGR("data/br-states.json", verbose = FALSE)
casos <- read.csv("data/cases-brazil-states.csv")
casos$vacc_per <- casos$vaccinated_per_100k_inhabitants/1000
casos$death_per <- casos$deaths_per_100k_inhabitants/1000
casos$cases_per <- casos$totalCases_per_100k_inhabitants/1000
casos$date <- ymd(casos$date)
temp <- casos %>% group_by(state) %>%
summarise(data = max(date))
temp1 <- merge(temp, casos, by.x = c("state", "data"), by.y = c("state", "date"), all.x = TRUE)
base <- merge(brasil, temp1, by.x ="id", by.y = "state" )
# range <- ceiling(max(base$vacc_per, na.rm=TRUE))
# passo <- range/4
# passo <- round(passo, 3)
# bins <- 0
# for (i in 1:4){
# t <- i*passo
# bins <- c(bins, t)
# }
bins <- c( 0, 0.5, 1, 1.5, 2, 5, 10, 30, 60)
pal <- colorBin("Blues", domain = c(0,60), bins = bins)
labels <- sprintf(
"%s
%g vacinados por 100 hab.
Atualizado em %s",
base$id, round(base$vacc_per, 2), as.character(format(base$data, "%d/%m/%Y"))
) %>% lapply(htmltools::HTML)
```
```{r, echo=FALSE, message=FALSE}
mundao <- readOGR("data/countries.geo.json", verbose = FALSE)
caso_mundo <- read.csv("data/owid-covid-data.csv")
caso_mundo$date <- ymd(caso_mundo$date)
temp <- caso_mundo %>% group_by(iso_code) %>%
slice(which.max(total_vaccinations_per_hundred))
base_mundo <- merge(mundao, temp, by.x ="id", by.y = "iso_code" )
```
Column {data-width=200}
-----------------------------------------------------------------------
### COMPARAÇÕES FACILITADAS
Ao proporcionar comparações visuais claras e imediatas entre o Brasil e o mundo no que se refere à vacinação e às vítimas do COVID-19, essa página se destaca de outros painéis mais completos e prestigiosos, como [Our World in Data](https://ourworldindata.org/coronavirus) e [Vacinômetro](https://coronavirusbra1.github.io/).
Vacinação, casos e mortes são apresentados como proporções por 100 habitantes e as escalas de cores são as mesmas para o mapa do Brasil e do mundo.
Uma inspeção rápida permite verificar, por exemplo, que a proporção de vacinados no Brasil se equipara aos seus vizinhos da América do Sul mas está bem atrás da América do Norte e Europa. Ou que a taxa de mortes no Amazonas é maior que a de qualquer país tomado como um todo.
**Importante:** os dados são consolidados diariamente, mas pode haver diferenças nas datas de atualização entre os países; verifique a última atualização disponível passando o mouse sobre o país em questão.
**Origem dos dados:**
Brasil: https://github.com/wcota/covid19br
Mundo: https://github.com/owid/covid-19-data
**Dataviz por**
[Guto Barros](http://www.gutobarros.com.br)
Disponibilizado sob Atribuição 4.0 Internacional (CC BY 4.0)
### Brasil: Total de vacinados
```{r}
valueBox(format(base_mundo$total_vaccinations[which(base_mundo$id == "BRA")],
decimal.mark = ",",
big.mark = "."),
color = "#2271b5",
icon = "fa-syringe")
```
### Brasil: Total de casos
```{r}
valueBox(format(base_mundo$total_cases [which(base_mundo$id == "BRA")],
decimal.mark = ",",
big.mark = "."),
color = "#f16914",
icon = "fa-ambulance")
```
### Brasil: Total de mortes
```{r}
valueBox(format(base_mundo$total_deaths [which(base_mundo$id == "BRA")],
decimal.mark = ",",
big.mark = "."),
color = "#ae217e",
icon = "fa-sad-tear")
```
### Última consolidação
```{r}
valueBox(format(format(max(base$data), "%d/%m/%Y")),
color = "#a0a2a3",
icon = "fa-clock")
```
Column {data-width=400}
-----------------------------------------------------------------------
### BRASIL VACINADOS
```{r, warning=FALSE}
leaflet(brasil,
options = leafletOptions(minZoom = 2)) %>%
setView(lng = -47.883 , lat = -15.793, zoom = 4) %>%
addPolygons(
fillColor = ~pal(base$vacc_per),
weight = 2,
opacity = 1,
color = "white",
fillOpacity = 0.7,
label = labels,
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "14px",
direction = "auto")) %>%
addLegend(pal = pal,
values = ~base$vacc_per,
opacity = 0.7,
title = "Vacinas por 100 hab.",
na.label = "Não informado",
labFormat = labelFormat(digits = 2,big.mark = " "),
position = "bottomright")
```
### BRASIL CASOS
```{r, warning=FALSE}
# range <- ceiling(max(base$cases_per, na.rm=TRUE))
# passo <- range/4
# passo <- round(passo, 3)
# bins <- 0
# for (i in 1:4){
# t <- i*passo
# bins <- c(bins, t)
# }
bins <- c(0, 4, 8, 12, 16)
pal <- colorBin("OrRd", domain = c(0,16), bins = bins)
labels <- sprintf(
"%s
%g casos por 100 hab.",
base$id, round(base$cases_per, 2)
) %>% lapply(htmltools::HTML)
leaflet(brasil,
options = leafletOptions(minZoom = 2)) %>%
setView(lng = -47.883 , lat = -15.793, zoom = 4) %>%
addPolygons(
fillColor = ~pal(base$cases_per),
weight = 2,
opacity = 1,
color = "white",
fillOpacity = 0.7,
label = labels,
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
addLegend(pal = pal,
values = ~base$cases_per,
opacity = 0.7,
title = "Casos por 100 hab.",
na.label = "Não informado",
labFormat = labelFormat(digits = 2,big.mark = " "),
position = "bottomright")
```
### BRASIL MORTES
```{r, warning=FALSE}
# range <- (max(base$death_per, na.rm=TRUE))
# passo <- range/4
# passo <- round(passo, 3)
# bins <- 0
# for (i in 1:4){
# t <- i*passo
# bins <- c(bins, t)
# }
bins <- c(0, 0.05, 0.1, 0.15, 0.2, 0.25)
pal <- colorBin("RdPu", domain = c(0,0.25), bins = bins)
labels <- sprintf(
"%s
%g mortes por 100 hab.",
base$id, round(base$death_per, 2)
) %>% lapply(htmltools::HTML)
leaflet(brasil,
options = leafletOptions(minZoom = 2)) %>%
setView(lng = -47.883 , lat = -15.793, zoom = 4) %>%
addPolygons(
fillColor = ~pal(base$death_per),
weight = 2,
opacity = 1,
color = "white",
fillOpacity = 0.7,
label = labels,
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
addLegend(pal = pal,
values = ~base$cases_per,
opacity = 0.7,
title = "Mortes por 100 hab.",
na.label = "Não informado",
labFormat = labelFormat(digits = 2,big.mark = " "),
position = "bottomright")
```
```{r, echo=FALSE, message=FALSE}
#range <- ceiling(max(base_mundo$total_vaccinations_per_hundred, na.rm=TRUE))
#passo1 <- range/4
#bins1 <- 0
#for (i in 1:4){
# t <- i*passo1
# bins1 <- c(bins1, t)
#}
bins1 <- c( 0, 0.5, 1, 1.5, 2, 5, 10, 30, 70)
pal <- colorBin("Blues", domain = c(0,70), bins = bins1)
labels <- sprintf(
"%s
%g vacinados por 100 hab.
Atualizado em: %s",
base_mundo$name, round(base_mundo$total_vaccinations_per_hundred, 2), as.character(format(base_mundo$date, "%d/%m/%Y"))) %>%
lapply(htmltools::HTML)
```
Column {data-width=400}
-----------------------------------------------------------------------
### MUNDO VACINADOS
```{r}
leaflet(mundao,
options = leafletOptions(minZoom = 1)) %>%
setView(lng = 0 , lat = 15, zoom = 1) %>%
addPolygons(
fillColor = ~pal(base_mundo$total_vaccinations_per_hundred),
weight = 2,
opacity = 1,
color = "white",
fillOpacity = 0.7,
label = labels,
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto"))
```
### MUNDO CASOS
```{r}
caso_mundo$cases_per <- caso_mundo$total_cases/caso_mundo$population*100
# range <- ceiling(max(base_mundo$cases_per, na.rm=TRUE))
# passo <- range/4
# passo <- round(passo, 3)
# bins <- 0
# for (i in 1:4){
# t <- i*passo
# bins <- c(bins, t)
# }
temp <- caso_mundo %>% group_by(iso_code) %>%
slice(which.max(cases_per))
base_mundo <- merge(mundao, temp, by.x ="id", by.y = "iso_code" )
bins <- c(0, 4, 8, 12, 16)
pal <- colorBin("OrRd", domain = c(0,16), bins = bins)
labels <- sprintf(
"%s
%g casos por 100 hab.
Última atualização %s",
base_mundo$name, round(base_mundo$cases_per, 2), as.character(format(base_mundo$date, "%d/%m/%Y"))) %>%
lapply(htmltools::HTML)
leaflet(mundao,
options = leafletOptions(minZoom = 1)) %>%
setView(lng = 0 , lat = 15, zoom = 1) %>%
addPolygons(
fillColor = ~pal(base_mundo$cases_per),
weight = 2,
opacity = 1,
color = "white",
fillOpacity = 0.7,
label = labels,
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto"))
```
### MUNDO MORTES
```{r}
caso_mundo$death_per <- caso_mundo$total_deaths/caso_mundo$population*100
temp <- caso_mundo %>% group_by(iso_code) %>%
slice(which.max(death_per))
base_mundo <- merge(mundao, temp, by.x ="id", by.y = "iso_code" )
# range <- (max(base_mundo$death_per, na.rm=TRUE))
# passo <- range/4
# passo <- round(passo, 3)
# bins <- 0
# for (i in 1:4){
# t <- i*passo
# bins <- c(bins, t)
# }
bins <- c(0, 0.05, 0.1, 0.15, 0.2, 0.25)
pal <- colorBin("RdPu", domain = c(0, 0.25), bins = bins)
labels <- sprintf(
"%s
%g Mortes por 100 hab.
Última atualização: %s",
base_mundo$name, round(base_mundo$death_per, 3), as.character(format(base_mundo$date, "%d/%m/%Y"))) %>%
lapply(htmltools::HTML)
leaflet(mundao,
options = leafletOptions(minZoom = 1)) %>%
setView(lng = 0 , lat = 15, zoom = 1) %>%
addPolygons(
fillColor = ~ pal(base_mundo$death_per),
weight = 2,
opacity = 1,
color = "white",
fillOpacity = 0.7,
label = labels,
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto"))
```